package com.ledi.guns.modular.system.dao;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.baomidou.mybatisplus.plugins.Page;
import com.ledi.guns.common.persistence.model.User;
import com.ledi.guns.core.datascope.DataScope;

/**
 * 管理员的dao
 *
 * @author fengshuonan
 * @date 2017年2月12日 下午8:43:52
 */
public interface UserMgrDao {

	/**
	 * 修改用户状态
	 *
	 * @param user
	 * @date 2017年2月12日 下午8:42:31
	 */
	int setStatus(@Param("userId") Integer userId, @Param("status") int status);

	/**
	 * 修改密码
	 *
	 * @param userId
	 * @param pwd
	 * @date 2017年2月12日 下午8:54:19
	 */
	int changePwd(@Param("userId") Integer userId, @Param("pwd") String pwd);

	/**
	 * 根据条件查询用户列表
	 * 
	 * @param b
	 * @param i
	 * @param page
	 * @return
	 * @date 2017年2月12日 下午9:14:34
	 */
	List<Map<String, Object>> selectUsers(@Param("page") Page<User> page, @Param("dataScope") DataScope dataScope, @Param("name") String name,
			@Param("beginTime") String beginTime,
			@Param("endTime") String endTime, @Param("deptid") Integer deptid, @Param("orderByField") String orderByField, @Param("isAsc") boolean isAsc);

	/**
	 * 设置用户的角色
	 *
	 * @return
	 * @date 2017年2月13日 下午7:31:30
	 */
	int setRoles(@Param("userId") Integer userId, @Param("roleIds") String roleIds);

	/**
	 * 通过账号获取用户
	 *
	 * @param account
	 * @return
	 * @date 2017年2月17日 下午11:07:46
	 */
	User getByAccount(@Param("account") String account);
}
